package com.snopy.leetcode.index1_1000.index1_100;

/**
 * @author snopy
 * @version 1.0.0
 * @classname Question58
 * @description 最后一个单词的长度
 * 给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
 *
 * 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

 * @email 77912204@qq.com
 * @date 2022/04/01 4:22
 */
public class Question58 {
    public static void main(String[] args) {
        String s = "  asd";
        int i = lengthOfLastWord(s);
        System.out.println(i);
    }
    public static int lengthOfLastWord(String s) {
        int len = 0,count=0;
        for (int i = s.length()-1;i>=0;i--){
            if (s.charAt(i)!=' '){
                len++;
            }else {
                count++;
                if ((count > 1 && len > 0)||len>=count){
                    break;
                }
            }
        }
        return len;
    }
    /**
     * @Description solution2
     * @param s:
     * @return: int
     * @Date 2022-04-01
     * @Author txl77912204@gmail.com
     **/
    public int lengthOfLastWord2(String s) {
        int end = s.length() - 1;
        while(end >= 0 && s.charAt(end) == ' ') end--;
        if(end < 0) return 0;
        int start = end;
        while(start >= 0 && s.charAt(start) != ' ') start--;
        return end - start;
    }
}
